package com.cqhilink.iot.jobstandardmanagement.facade.service.permission;

import com.cqhilink.iot.jobstandardmanagement.facade.model.EmployeeVo;
import com.cqhilink.iot.jobstandardmanagement.facade.model.Menu;

import java.util.List;
import java.util.Map;

/**
 * Created by huangxueqian on 2017/1/6/006.
 * 创建权限服务，获取子系统服务
 */
public interface JsmPermissionService {

    /**
     * 获取登录子系统的一级菜单
     * @param systemCode 系统编码，
     * @param employeeVo  当前用户信息
     * @return
     */
    public List<Menu> getFirstNavPermission(String systemCode, EmployeeVo employeeVo,String pfToken) throws Exception;

    /**
     * @param systemCode 当前用户信息
     * @param menuId  根据一级菜单ID， 获取对应菜单权限
     * @return 返回一级菜单的二级菜单及其子菜单
     * @throws Exception
     */
    public List<Menu> getLeftMenuNavPermission( String systemCode,EmployeeVo employeeVo, String menuId,String pfToken) throws Exception;

    /**
     * 根据当前人员信息-获取所有的菜单信息
     */
    public List<Menu> getAllMenuPermission(String pfToken,String systemCode,EmployeeVo employeeVo) throws Exception ;

    /**
     * 判断当前菜单是否该按钮是否可用
     * @throws Exception
     */
    public boolean isBtnPermission(String btnCode,String menuId,EmployeeVo employeeVo) throws Exception ;

    /**
     * 调用复制进行url链接控制
     */
    public boolean isBtnPermission(String requestUrl,String pfToken,String systemCode, EmployeeVo employeeVo) throws Exception ;

    /**
     * @param  menuName 菜单名称
     * @param  systemId 菜单Code
     * @return 返回结果
     * @throws Exception 抛出异常信息
     */
    public Map<String,Object> authFavoritesMenu(String menuName,String systemId,EmployeeVo employeeVo) throws Exception ;

}
